home *** CD-ROM | disk | FTP | other *** search
Text File | 1998-06-08 | 1.3 KB | 68 lines | [TEXT/CWIE] |
- #include "Solution.h"
-
- #include "ProblemUtils.h"
-
- #include <stdio.h>
- #include <string.h>
- #include <Files.h>
- #include <Errors.h>
-
- static OSErr ReadRegisterArray( Handle indata, RegisterArray registers )
- {
- OSErr err;
- char line[MAX_LINE_LEN];
- char *linep;
-
- err = -1;
- linep = line;
- if ( ProblemReadLineFromHandle( indata, line, MAX_LINE_LEN ) ) {
- err = noErr;
- for ( int i = 0; i <= 25 && err == noErr; i++ ) {
- if ( !ProblemGetSInt32( &linep, ®isters[i] ) ) {
- err = -2;
- }
- }
- if ( err == noErr && *linep ) {
- err = -3;
- }
- }
- return err;
- }
-
- pascal OSErr CheckInterpreter( const FSSpec* infile, const FSSpec* outfile, Boolean *correct )
- {
- OSErr err;
- Handle indata;
- RegisterArray inregisters;
- RegisterArray outregisters;
-
- *correct = false;
-
- err = ProblemFileRead( infile, &indata );
- ProblemLogError( err, "CheckInterpreter: ProblemFileRead" );
- if ( err == noErr ) {
- err = ReadRegisterArray( indata, inregisters );
- if ( err == noErr ) {
- err = ReadRegisterArray( indata, outregisters );
- }
- if ( err == noErr ) {
- Interpret( indata, inregisters );
- *correct = true;
- for ( int i = 0; i <= 25 && *correct; i++ ) {
- *correct = (inregisters[i] == outregisters[i]);
- }
- }
- DisposeHandle( indata );
- }
- return err;
- }
-
- int main()
- {
- printf( "Starting\n" );
-
- ProblemRunSingleFileTests( CheckInterpreter );
-
- return 0;
- }
-